//核心代码模式
class Solution
{
public:
    void push(int node) {
        // 进栈1
        stack1.push(node);
    }

    int pop() {
        // 若栈2不空直接 输出栈首元素，否则栈1全部进栈2再 输出出栈首元素
        // 都要输出栈首元素且空多一步，以空为if循环
        if (stack2.empty()){
            while (!stack1.empty()){
                // pop无返回值，需要接栈首元素
                stack2.push(stack1.top());
                stack1.pop();
            }
        }
        // 输出栈2首元素   输出并消除 需要变量接栈顶值
        // 尾部记得带;
        int temp = stack2.top();
        stack2.pop();
        return temp;
    }

private:
    stack<int> stack1;
    stack<int> stack2;
};